home *** CD-ROM | disk | FTP | other *** search
-
- I have found three bugs in himem.sys 2.60 that I will outline in this
- article. They are (1) himem.sys 2.60 doesn't correctly support the
- resize function which will cause it to incorrectly assign handles, (2)
- it doesn't correctly preserve the 32-bit AX register which can cause problems
- on 386 machines, and (3) the interrupt 15 handler incorrectly assumes
- the state of interrupts which can cause conflicts between himem.sys
- and the keyboard controller chip. I think that himem.sys does an
- iret instead of a far ret. It either incorrectly assumes the
- interrupts are always off or on. I think that it assumes that they
- are off.
-
- The information below is about the handles bug and the xmstest.exe program.
- Note that the first handle is numbered 2848 with himem.sys 2.60 and that
- since the handles take 6 bytes of memory that the handle numbers increase
- by 6 I.E. 2848, 2854, 2860, .... Use xmstest.exe menu selection 1 to
- allocate all of your xms memory. For this example lets say that you have
- 3456 K of xms like I do. Then use menu selection 5 to resize handle 2848
- down to 3436 K. Then use menu selection 1 to allocate the 20 K that you
- freeed up by resizing the 3456 K block down to 3436 K. Repeat this procedure
- and note that the handle numbers start incrementing by 12 instead of 6 after
- the second or third resize. Note that himem.sys will go ahead and use the
- handles it skips after it has run out of handles if it doesn't have to do
- a resize to use them. Note that the first handle number is only 2848 on
- my machine it might very on others. Maybe if enough people are made aware
- of these bugs then Microsoft will fix them.
-